Date: Thu, 07 Nov 1996 19:09:20 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Mon, 04 Nov 1996 17:34:54 GMT
Content-length: 4121

<title>Susan B. Horwitz</title>
<h1>Susan B. Horwitz</h1>
<H1><!WA0><!WA0><!WA0><!WA0><IMG ALIGN=MIDDLE SRC="http://www.cs.wisc.edu/~pubs/faculty-info/horwitz.gif">
</H1>
<p>
Professor<BR>
<!WA1><!WA1><!WA1><!WA1><A HREF="http://www.cs.wisc.edu/">Computer Sciences Department</A><BR>
University of Wisconsin-Madison<BR>
1210 West Dayton Street<BR>
Madison, WI 53706-1685<BR>
USA<BR><BR>
E-mail: <!WA2><!WA2><!WA2><!WA2><a HREF="http://www.cs.wisc.edu/cgi-bin/finger?horwitz"> horwitz@cs.wisc.edu </a> <BR>
Telephone:  (608) 262-7946<BR>
Secretary:  (608) 262-0017<BR>
Department: (608) 262-1204<BR>
Fax:        (608) 262-9777<BR>
<p>
<em>Ph.D., Cornell University, 1985</em>
<p>
<em>Research interests:</em>
<ul>
<li>language-based programming environments
<li>program slicing, differencing, and merging
<li>static analysis of programs
<li>interprocedural dataflow analysis
</ul>
<p>
<hr>
<h2>Research Summary</h2>
<p>
My work mainly involves the design and implementation
of language-based programming tools that help programmers with problems like:
<ul>
<li> understanding how existing programs work, and how they would be affected
by proposed modifications;
<li> understanding the textual, structural, and semantic differences between
two versions of a program;
<li> retesting a program after changing it;
<li> combining pieces of old programs to produce a new program, with certain
semantic guarantees.
</ul>
This work has involved the use of a program representation called the
<i>program dependence graph (PDG)</i>, and an operation called <i>slicing</i>.
<p>
I am also working on new algorithms for <i>precise, interprocedural
dataflow analysis</i>.
Previous work on interprocedural dataflow analysis mainly concentrated
either on efficient algorithms for specific individual problems,
or on (not necessarily efficient) algorithms for a general class of problems.
Thomas Reps, Mooly Sagiv, and I have developed and implemented a new
algorithm that is both efficient, and applies to a large class of problems.
<hr> 
<h2>Recent Publications</h2>
<ul>
<li>
M. Shapiro and S. Horwitz,
<!WA3><!WA3><!WA3><!WA3><A HREF="http://www.cs.wisc.edu/wpis/papers/popl97.ps">
Fast and accurate flow-insensitive points-to analysis</A>,
To appear in <i>Conference Record of the Twenty-Fourth ACM Symposium on
Principles of Programming Languages</i>,
(Paris, France, January 1997).
<li>
S. Horwitz, T.Reps, and M. Sagiv,
<!WA4><!WA4><!WA4><!WA4><A HREF="http://www.cs.wisc.edu/wpis/papers/fse95a.ps">
Demand interprocedural dataflow analysis</A>.
In <i>Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software
Engineering</i>,
(Washington DC, October 1995).
<li>
M. Sagiv, T. Reps, and S. Horwitz,
<!WA5><!WA5><!WA5><!WA5><A HREF="http://www.cs.wisc.edu/wpis/papers/tapsoft95.ps">
Precise interprocedural dataflow analysis with applications to constant
propagation</A>.
In <i>Proceedings of the Sixth International Joint Conference on the Theory
and Practice of Software Development</i>,
(Aarhus Denmark, May 1995).
<li>
T. Reps, M. Sagiv, and S. Horwitz,
<!WA6><!WA6><!WA6><!WA6><A HREF="http://www.cs.wisc.edu/wpis/papers/popl95.ps">
Precise interprocedural dataflow analysis via graph reachability</A>.
In <i>Conference Record of the Twenty-Second ACM Symposium on Principles
of Programming Languages</i>,
(San Francisco CA, January 1995).
<li>
S. Bates and S. Horwitz,
<!WA7><!WA7><!WA7><!WA7><A HREF="http://www.cs.wisc.edu/wpis/papers/popl93.ps">
Incremental program testing using program dependence graphs</A>.
In <i>Conference Record of the Twentieth ACM Symposium on Principles
of Programming Languages</i>,
(Charleston, SC, January 1993).
<li>
S. Horwitz and T. Reps,
<!WA8><!WA8><!WA8><!WA8><A HREF="http://www.cs.wisc.edu/wpis/papers/icse92.ps">
The use of program dependence graphs in software engineering</A>.
In <i>Proceedings of the Fourteenth International Conference
on Software Engineering</i>,
(Melbourne, Australia, May 1992).
<li>
S. Horwitz,
<!WA9><!WA9><!WA9><!WA9><A HREF="http://www.cs.wisc.edu/wpis/papers/sigplan90.ps">
Identifying the semantic and textual differences between two versions of a
program</A>.
In <i>Proceedings of the SIGPLAN 90 Conference on Programming Language
Design and Implementation</i>,
(White Plains, NY, June 1990).
<p>
<hr>
<h2>Teaching</h2>
<p>
<UL>
  <LI> <!WA10><!WA10><!WA10><!WA10><A HREF="http://www.cs.wisc.edu/~horwitz/cs536/cs536.html"> cs536 </A>
</UL>
